Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

157
Views
¿Una declaración "con" admite sugerencias de tipo?

¿Puede definir la sugerencia de tipo para una variable definida con la sintaxis with ?

 with example() as x: print(x)

Me gustaría escribir una sugerencia de lo anterior para decir que x es una str (como ejemplo).

La única solución que he encontrado es usar una variable intermedia, pero esto se siente extraño.

 with example() as x: y: str = x print(y)

No puedo encontrar un ejemplo en la documentación de escritura .

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Por lo general, las anotaciones de tipo se colocan en los límites de la API. En este caso, el tipo debe deducirse de example.__enter__ . En caso de que esa función no declare ningún tipo, la solución es crear un archivo auxiliar correspondiente para ayudar al verificador de tipos a inferir ese tipo.

Específicamente, esto significa crear un archivo .pyi con la misma raíz que el módulo desde el cual se importó el Example . Luego se puede agregar el siguiente código:

 class Example: def __enter__(self) -> str: ... def __exit__(self, exc_type, exc_value, exc_traceback) -> None: ...
over 4 years ago · Santiago Trujillo Report

0

PEP 526, que se implementó en Python 3.6, le permite anotar variables. Puede utilizar, por ejemplo,

 x: str with example() as x: [...]

o

 with example() as x: x: str [...]
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!